import request from "@/utils/request";
// 菜单基础URL
const PERM_BASE_URL = "/api/v1/perms";

const PermAPI = {
  /**
   * 获取API权限树形列表
   *
   * @param queryParams 查询参数
   * @returns API权限树形列表
   */
  getList(queryParams: PermQuery) {
    return request<any, PermVO[]>({
      url: `${PERM_BASE_URL}`,
      method: "get",
      params: queryParams,
    });
  },

  /**
   * 获取菜单下拉数据源
   *
   * @returns API权限下拉数据源
   */
  getOptions(onlyParent?: boolean) {
    return request<any, OptionType[]>({
      url: `${PERM_BASE_URL}/options`,
      method: "get",
      params: { onlyParent: onlyParent },
    });
  },
};
export default PermAPI;

/** 菜单查询参数 */
export interface PermQuery {
  /** 搜索关键字 */
  keywords?: string;
}

/** 菜单视图对象 */
export interface PermVO {
  /** 子菜单 */
  children?: PermVO[];
  /** ICON */
  icon?: string;
  /** 菜单ID */
  id?: number;
  /** 菜单名称 */
  name?: string;
  /** 模块分组名称 */
  module?: string;
  /** 权限描述 */
  description?: string;
}
